{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy,random,datetime"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 208,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_fitness(genes):\n",
    "    fitness = 1\n",
    "    for i in range(1, len(genes)):\n",
    "        if genes[i] > genes[i - 1]:\n",
    "            fitness +=1\n",
    "    return fitness"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 278,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Chromosome:\n",
    "    def __init__(self, genes, fitness):\n",
    "        self.Genes = genes\n",
    "        self.Fitness = fitness\n",
    "def mutate(parent, geneSet):\n",
    "    childGenes = parent.Genes[:]\n",
    "    while True:\n",
    "        idx1, idx2 = random.sample(geneSet, 2)\n",
    "        if childGenes[idx1] < childGenes[idx2]:\n",
    "            continue\n",
    "        childGenes[idx1],childGenes[idx2] = childGenes[idx2],childGenes[idx1]\n",
    "        fitness = get_fitness(childGenes)\n",
    "        break\n",
    "    return Chromosome(childGenes, fitness)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 279,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[64, 12, 40, 44, 39, 81, 14, 89, 98, 54]"
      ]
     },
     "execution_count": 279,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = random.sample([i for i in range(100)],10)\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 290,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[12, 14, 39, 40, 44, 54, 64, 81, 89, 98]"
      ]
     },
     "execution_count": 290,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sorted(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 280,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"
      ]
     },
     "execution_count": 280,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "genset = [i for i in range(10)]\n",
    "genset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 288,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_best():\n",
    "    random.seed()\n",
    "    startTime = datetime.datetime.now()\n",
    "    bestParent = Chromosome(x,get_fitness(x))\n",
    "    if bestParent.Fitness <= 1:\n",
    "        return bestParent\n",
    "    num = 0\n",
    "    while True:\n",
    "        num +=1\n",
    "        child = mutate(bestParent,genset)\n",
    "        if bestParent.Fitness < child.Fitness:\n",
    "            continue\n",
    "        print(bestParent.Genes,\" {}\".format(child.Fitness),datetime.datetime.now()-startTime)\n",
    "        if child.Fitness <=1:\n",
    "            bestParent = child\n",
    "            break\n",
    "        bestParent = child"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 289,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[64, 12, 40, 44, 39, 81, 14, 89, 98, 54]  6 0:00:00\n",
      "[64, 14, 40, 44, 39, 81, 12, 89, 98, 54]  6 0:00:00\n",
      "[64, 98, 40, 44, 39, 81, 12, 89, 14, 54]  4 0:00:00\n",
      "[64, 98, 40, 44, 39, 14, 12, 89, 81, 54]  3 0:00:00\n",
      "[64, 40, 98, 44, 39, 14, 12, 89, 81, 54]  3 0:00:00\n",
      "[64, 40, 12, 44, 39, 14, 98, 89, 81, 54]  3 0:00:00.000997\n",
      "[64, 44, 12, 40, 39, 14, 98, 89, 81, 54]  3 0:00:00.000997\n",
      "[64, 44, 98, 40, 39, 14, 12, 89, 81, 54]  3 0:00:00.000997\n",
      "[54, 44, 98, 40, 39, 14, 12, 89, 81, 64]  3 0:00:00.000997\n",
      "[98, 44, 54, 40, 39, 14, 12, 89, 81, 64]  3 0:00:00.000997\n",
      "[89, 44, 54, 40, 39, 14, 12, 98, 81, 64]  3 0:00:00.001995\n",
      "[89, 40, 54, 44, 39, 14, 12, 98, 81, 64]  3 0:00:00.001995\n",
      "[40, 89, 54, 44, 39, 14, 12, 98, 81, 64]  3 0:00:00.001995\n",
      "[98, 89, 54, 44, 39, 14, 12, 40, 81, 64]  3 0:00:00.002994\n",
      "[40, 89, 54, 44, 39, 14, 12, 98, 81, 64]  3 0:00:00.002994\n",
      "[89, 40, 54, 44, 39, 14, 12, 98, 81, 64]  3 0:00:00.002994\n",
      "[89, 81, 54, 44, 39, 14, 12, 98, 40, 64]  3 0:00:00.003990\n",
      "[89, 81, 54, 44, 39, 14, 64, 98, 40, 12]  3 0:00:00.003990\n",
      "[89, 81, 54, 44, 40, 14, 64, 98, 39, 12]  3 0:00:00.003990\n",
      "[89, 81, 98, 44, 40, 14, 64, 54, 39, 12]  2 0:00:00.003990\n",
      "[89, 81, 64, 44, 40, 14, 98, 54, 39, 12]  2 0:00:00.003990\n",
      "[98, 81, 64, 44, 40, 14, 89, 54, 39, 12]  2 0:00:00.003990\n",
      "[98, 81, 64, 44, 40, 39, 89, 54, 14, 12]  2 0:00:00.003990\n",
      "[98, 89, 64, 44, 40, 39, 81, 54, 14, 12]  2 0:00:00.004988\n",
      "[98, 89, 81, 44, 40, 39, 64, 54, 14, 12]  2 0:00:00.004988\n",
      "[98, 89, 81, 44, 40, 14, 64, 54, 39, 12]  2 0:00:00.004988\n",
      "[98, 89, 64, 44, 40, 14, 81, 54, 39, 12]  2 0:00:00.004988\n",
      "[98, 89, 64, 44, 40, 39, 81, 54, 14, 12]  2 0:00:00.004988\n",
      "[98, 89, 64, 44, 40, 14, 81, 54, 39, 12]  2 0:00:00.004988\n",
      "[98, 89, 54, 44, 40, 14, 81, 64, 39, 12]  2 0:00:00.005985\n",
      "[98, 89, 54, 44, 40, 12, 81, 64, 39, 14]  2 0:00:00.008976\n",
      "[98, 89, 54, 44, 39, 12, 81, 64, 40, 14]  2 0:00:00.010974\n",
      "[98, 89, 54, 44, 40, 12, 81, 64, 39, 14]  2 0:00:00.010974\n",
      "[98, 81, 54, 44, 40, 12, 89, 64, 39, 14]  2 0:00:00.010974\n",
      "[98, 81, 54, 44, 39, 12, 89, 64, 40, 14]  2 0:00:00.010974\n",
      "[98, 81, 54, 44, 14, 12, 89, 64, 40, 39]  2 0:00:00.010974\n",
      "[98, 64, 54, 44, 14, 12, 89, 81, 40, 39]  2 0:00:00.010974\n",
      "[98, 64, 54, 44, 39, 12, 89, 81, 40, 14]  2 0:00:00.011971\n",
      "[98, 64, 54, 44, 14, 12, 89, 81, 40, 39]  2 0:00:00.011971\n",
      "[98, 64, 54, 40, 14, 12, 89, 81, 44, 39]  2 0:00:00.011971\n",
      "[98, 64, 54, 40, 39, 12, 89, 81, 44, 14]  2 0:00:00.011971\n",
      "[98, 81, 54, 40, 39, 12, 89, 64, 44, 14]  2 0:00:00.012965\n",
      "[98, 81, 64, 40, 39, 12, 89, 54, 44, 14]  2 0:00:00.012965\n",
      "[98, 81, 64, 44, 39, 12, 89, 54, 40, 14]  2 0:00:00.013963\n",
      "[98, 81, 64, 44, 40, 12, 89, 54, 39, 14]  2 0:00:00.013963\n",
      "[98, 81, 64, 54, 40, 12, 89, 44, 39, 14]  2 0:00:00.013963\n",
      "[98, 81, 64, 54, 44, 12, 89, 40, 39, 14]  2 0:00:00.014960\n",
      "[98, 81, 64, 54, 44, 14, 89, 40, 39, 12]  2 0:00:00.014960\n",
      "[98, 89, 64, 54, 44, 14, 81, 40, 39, 12]  2 0:00:00.015958\n",
      "[98, 81, 64, 54, 44, 14, 89, 40, 39, 12]  2 0:00:00.016955\n",
      "[89, 81, 64, 54, 44, 14, 98, 40, 39, 12]  2 0:00:00.016955\n",
      "[89, 81, 64, 54, 44, 39, 98, 40, 14, 12]  2 0:00:00.016955\n",
      "[98, 81, 64, 54, 44, 39, 89, 40, 14, 12]  2 0:00:00.016955\n",
      "[98, 81, 64, 54, 40, 39, 89, 44, 14, 12]  2 0:00:00.016955\n",
      "[98, 89, 64, 54, 40, 39, 81, 44, 14, 12]  2 0:00:00.017953\n",
      "[98, 81, 64, 54, 40, 39, 89, 44, 14, 12]  2 0:00:00.017953\n",
      "[89, 81, 64, 54, 40, 39, 98, 44, 14, 12]  2 0:00:00.017953\n",
      "[98, 81, 64, 54, 40, 39, 89, 44, 14, 12]  2 0:00:00.017953\n",
      "[98, 81, 64, 54, 40, 14, 89, 44, 39, 12]  2 0:00:00.017953\n",
      "[98, 81, 64, 54, 39, 14, 89, 44, 40, 12]  2 0:00:00.018951\n",
      "[98, 81, 64, 44, 39, 14, 89, 54, 40, 12]  2 0:00:00.018951\n",
      "[98, 81, 54, 44, 39, 14, 89, 64, 40, 12]  2 0:00:00.018951\n",
      "[98, 81, 54, 40, 39, 14, 89, 64, 44, 12]  2 0:00:00.018951\n",
      "[98, 81, 64, 40, 39, 14, 89, 54, 44, 12]  2 0:00:00.018951\n",
      "[98, 81, 54, 40, 39, 14, 89, 64, 44, 12]  2 0:00:00.019947\n",
      "[98, 81, 64, 40, 39, 14, 89, 54, 44, 12]  2 0:00:00.019947\n",
      "[98, 89, 64, 40, 39, 14, 81, 54, 44, 12]  2 0:00:00.020974\n",
      "[98, 81, 64, 40, 39, 14, 89, 54, 44, 12]  2 0:00:00.020974\n",
      "[98, 81, 54, 40, 39, 14, 89, 64, 44, 12]  2 0:00:00.020974\n",
      "[98, 64, 54, 40, 39, 14, 89, 81, 44, 12]  2 0:00:00.020974\n",
      "[89, 64, 54, 40, 39, 14, 98, 81, 44, 12]  2 0:00:00.020974\n",
      "[98, 64, 54, 40, 39, 14, 89, 81, 44, 12]  2 0:00:00.020974\n",
      "[98, 64, 54, 44, 39, 14, 89, 81, 40, 12]  2 0:00:00.021981\n",
      "[89, 64, 54, 44, 39, 14, 98, 81, 40, 12]  2 0:00:00.021981\n",
      "[89, 81, 54, 44, 39, 14, 98, 64, 40, 12]  2 0:00:00.021981\n",
      "[98, 81, 54, 44, 39, 14, 89, 64, 40, 12]  2 0:00:00.021981\n",
      "[98, 81, 64, 44, 39, 14, 89, 54, 40, 12]  2 0:00:00.021981\n",
      "[89, 81, 64, 44, 39, 14, 98, 54, 40, 12]  2 0:00:00.021981\n",
      "[98, 81, 64, 44, 39, 14, 89, 54, 40, 12]  2 0:00:00.021981\n",
      "[89, 81, 64, 44, 39, 14, 98, 54, 40, 12]  2 0:00:00.022938\n",
      "[89, 81, 64, 44, 40, 14, 98, 54, 39, 12]  2 0:00:00.022938\n",
      "[89, 81, 64, 44, 39, 14, 98, 54, 40, 12]  2 0:00:00.022938\n",
      "[89, 81, 64, 54, 39, 14, 98, 44, 40, 12]  2 0:00:00.022938\n",
      "[98, 81, 64, 54, 39, 14, 89, 44, 40, 12]  2 0:00:00.022938\n",
      "[98, 81, 64, 44, 39, 14, 89, 54, 40, 12]  2 0:00:00.022938\n",
      "[98, 81, 64, 54, 39, 14, 89, 44, 40, 12]  2 0:00:00.023964\n",
      "[98, 81, 64, 44, 39, 14, 89, 54, 40, 12]  2 0:00:00.023964\n",
      "[98, 81, 54, 44, 39, 14, 89, 64, 40, 12]  2 0:00:00.023964\n",
      "[98, 64, 54, 44, 39, 14, 89, 81, 40, 12]  2 0:00:00.023964\n",
      "[98, 81, 54, 44, 39, 14, 89, 64, 40, 12]  2 0:00:00.023964\n",
      "[98, 89, 54, 44, 39, 14, 81, 64, 40, 12]  2 0:00:00.023964\n",
      "[98, 81, 54, 44, 39, 14, 89, 64, 40, 12]  2 0:00:00.023964\n",
      "[98, 81, 64, 44, 39, 14, 89, 54, 40, 12]  2 0:00:00.023964\n",
      "[98, 81, 64, 40, 39, 14, 89, 54, 44, 12]  2 0:00:00.023964\n",
      "[98, 89, 64, 40, 39, 14, 81, 54, 44, 12]  2 0:00:00.024960\n",
      "[98, 81, 64, 40, 39, 14, 89, 54, 44, 12]  2 0:00:00.024960\n",
      "[89, 81, 64, 40, 39, 14, 98, 54, 44, 12]  2 0:00:00.024960\n",
      "[98, 81, 64, 40, 39, 14, 89, 54, 44, 12]  2 0:00:00.024960\n",
      "[98, 81, 54, 40, 39, 14, 89, 64, 44, 12]  2 0:00:00.025932\n",
      "[98, 81, 54, 44, 39, 14, 89, 64, 40, 12]  2 0:00:00.025932\n",
      "[98, 81, 64, 44, 39, 14, 89, 54, 40, 12]  2 0:00:00.025932\n",
      "[98, 81, 54, 44, 39, 14, 89, 64, 40, 12]  2 0:00:00.025932\n",
      "[98, 81, 54, 40, 39, 14, 89, 64, 44, 12]  2 0:00:00.025932\n",
      "[98, 81, 54, 44, 39, 14, 89, 64, 40, 12]  2 0:00:00.025932\n",
      "[98, 89, 54, 44, 39, 14, 81, 64, 40, 12]  2 0:00:00.027926\n",
      "[98, 89, 64, 44, 39, 14, 81, 54, 40, 12]  2 0:00:00.028923\n",
      "[98, 89, 64, 40, 39, 14, 81, 54, 44, 12]  2 0:00:00.028923\n",
      "[98, 89, 54, 40, 39, 14, 81, 64, 44, 12]  2 0:00:00.028923\n",
      "[98, 89, 54, 44, 39, 14, 81, 64, 40, 12]  2 0:00:00.029922\n",
      "[98, 81, 54, 44, 39, 14, 89, 64, 40, 12]  2 0:00:00.029922\n",
      "[98, 64, 54, 44, 39, 14, 89, 81, 40, 12]  2 0:00:00.030918\n",
      "[98, 64, 54, 44, 40, 14, 89, 81, 39, 12]  2 0:00:00.031915\n",
      "[89, 64, 54, 44, 40, 14, 98, 81, 39, 12]  2 0:00:00.031915\n",
      "[89, 64, 54, 44, 40, 39, 98, 81, 14, 12]  2 0:00:00.031915\n",
      "[89, 81, 54, 44, 40, 39, 98, 64, 14, 12]  2 0:00:00.032920\n",
      "[89, 64, 54, 44, 40, 39, 98, 81, 14, 12]  2 0:00:00.032920\n",
      "[89, 81, 54, 44, 40, 39, 98, 64, 14, 12]  2 0:00:00.032920\n",
      "[89, 64, 54, 44, 40, 39, 98, 81, 14, 12]  2 0:00:00.032920\n",
      "[98, 64, 54, 44, 40, 39, 89, 81, 14, 12]  2 0:00:00.033909\n",
      "[98, 81, 54, 44, 40, 39, 89, 64, 14, 12]  2 0:00:00.033909\n",
      "[98, 81, 54, 44, 40, 14, 89, 64, 39, 12]  2 0:00:00.033909\n",
      "[98, 89, 54, 44, 40, 14, 81, 64, 39, 12]  2 0:00:00.034907\n",
      "[98, 89, 64, 44, 40, 14, 81, 54, 39, 12]  2 0:00:00.035904\n",
      "[98, 89, 64, 44, 40, 39, 81, 54, 14, 12]  2 0:00:00.035904\n",
      "[98, 89, 64, 44, 40, 14, 81, 54, 39, 12]  2 0:00:00.035904\n",
      "[98, 89, 64, 44, 40, 12, 81, 54, 39, 14]  2 0:00:00.035904\n",
      "[98, 89, 64, 54, 40, 12, 81, 44, 39, 14]  2 0:00:00.035904\n",
      "[98, 89, 64, 54, 39, 12, 81, 44, 40, 14]  2 0:00:00.035904\n",
      "[98, 81, 64, 54, 39, 12, 89, 44, 40, 14]  2 0:00:00.035904\n",
      "[98, 81, 64, 44, 39, 12, 89, 54, 40, 14]  2 0:00:00.035904\n",
      "[98, 81, 64, 40, 39, 12, 89, 54, 44, 14]  2 0:00:00.036900\n",
      "[98, 81, 54, 40, 39, 12, 89, 64, 44, 14]  2 0:00:00.036900\n",
      "[98, 81, 44, 40, 39, 12, 89, 64, 54, 14]  2 0:00:00.036900\n",
      "[98, 81, 44, 40, 14, 12, 89, 64, 54, 39]  2 0:00:00.036900\n",
      "[98, 81, 44, 40, 39, 12, 89, 64, 54, 14]  2 0:00:00.036900\n",
      "[98, 81, 54, 40, 39, 12, 89, 64, 44, 14]  2 0:00:00.036900\n",
      "[98, 81, 64, 40, 39, 12, 89, 54, 44, 14]  2 0:00:00.036900\n",
      "[98, 89, 64, 40, 39, 12, 81, 54, 44, 14]  2 0:00:00.037899\n",
      "[98, 89, 81, 40, 39, 12, 64, 54, 44, 14]  2 0:00:00.038936\n",
      "[98, 89, 81, 44, 39, 12, 64, 54, 40, 14]  2 0:00:00.038936\n",
      "[98, 89, 81, 44, 14, 12, 64, 54, 40, 39]  2 0:00:00.038936\n",
      "[98, 89, 64, 44, 14, 12, 81, 54, 40, 39]  2 0:00:00.038936\n",
      "[98, 89, 64, 44, 39, 12, 81, 54, 40, 14]  2 0:00:00.038936\n",
      "[98, 89, 64, 44, 14, 12, 81, 54, 40, 39]  2 0:00:00.038936\n",
      "[98, 89, 81, 44, 14, 12, 64, 54, 40, 39]  2 0:00:00.038936\n",
      "[98, 89, 64, 44, 14, 12, 81, 54, 40, 39]  2 0:00:00.039928\n",
      "[98, 89, 54, 44, 14, 12, 81, 64, 40, 39]  2 0:00:00.039928\n",
      "[98, 89, 54, 40, 14, 12, 81, 64, 44, 39]  2 0:00:00.039928\n",
      "[98, 89, 64, 40, 14, 12, 81, 54, 44, 39]  2 0:00:00.039928\n",
      "[98, 89, 64, 40, 39, 12, 81, 54, 44, 14]  2 0:00:00.039928\n",
      "[98, 89, 64, 44, 39, 12, 81, 54, 40, 14]  2 0:00:00.039928\n",
      "[98, 89, 64, 44, 14, 12, 81, 54, 40, 39]  2 0:00:00.039928\n",
      "[98, 89, 64, 44, 39, 12, 81, 54, 40, 14]  2 0:00:00.040925\n",
      "[98, 89, 64, 44, 39, 14, 81, 54, 40, 12]  2 0:00:00.040925\n",
      "[98, 89, 64, 54, 39, 14, 81, 44, 40, 12]  2 0:00:00.040925\n",
      "[98, 89, 64, 54, 40, 14, 81, 44, 39, 12]  2 0:00:00.040925\n",
      "[98, 89, 81, 54, 40, 14, 64, 44, 39, 12]  2 0:00:00.040925\n",
      "[98, 89, 64, 54, 40, 14, 81, 44, 39, 12]  2 0:00:00.040925\n",
      "[98, 89, 64, 54, 44, 14, 81, 40, 39, 12]  2 0:00:00.040925\n",
      "[98, 89, 64, 54, 44, 39, 81, 40, 14, 12]  2 0:00:00.040925\n",
      "[98, 89, 64, 54, 44, 40, 81, 39, 14, 12]  2 0:00:00.040925\n",
      "[98, 89, 81, 54, 44, 40, 64, 39, 14, 12]  2 0:00:00.041922\n",
      "[98, 89, 81, 54, 44, 40, 39, 64, 14, 12]  2 0:00:00.042887\n",
      "[98, 89, 64, 54, 44, 40, 39, 81, 14, 12]  2 0:00:00.043930\n",
      "[98, 81, 64, 54, 44, 40, 39, 89, 14, 12]  2 0:00:00.043930\n",
      "[98, 81, 64, 54, 44, 40, 39, 14, 89, 12]  2 0:00:00.043930\n",
      "[98, 81, 64, 54, 44, 40, 39, 89, 14, 12]  2 0:00:00.043930\n",
      "[98, 89, 64, 54, 44, 40, 39, 81, 14, 12]  2 0:00:00.043930\n",
      "[98, 89, 81, 54, 44, 40, 39, 64, 14, 12]  2 0:00:00.043930\n",
      "[98, 89, 81, 54, 44, 40, 14, 64, 39, 12]  2 0:00:00.044915\n",
      "[98, 89, 81, 54, 44, 39, 14, 64, 40, 12]  2 0:00:00.047909\n",
      "[98, 89, 81, 54, 44, 40, 14, 64, 39, 12]  2 0:00:00.047909\n",
      "[98, 89, 81, 54, 44, 40, 39, 64, 14, 12]  2 0:00:00.047909\n",
      "[98, 89, 81, 54, 44, 40, 14, 64, 39, 12]  2 0:00:00.048869\n",
      "[98, 89, 81, 54, 44, 40, 39, 64, 14, 12]  2 0:00:00.048869\n",
      "[98, 89, 81, 54, 44, 40, 64, 39, 14, 12]  2 0:00:00.048869\n",
      "[98, 89, 81, 54, 44, 39, 64, 40, 14, 12]  2 0:00:00.048869\n",
      "[98, 89, 81, 64, 44, 39, 54, 40, 14, 12]  2 0:00:00.048869\n",
      "[98, 89, 81, 64, 54, 39, 44, 40, 14, 12]  2 0:00:00.048869\n",
      "[98, 89, 81, 64, 54, 40, 44, 39, 14, 12]  2 0:00:00.049866\n",
      "[98, 89, 81, 64, 54, 40, 39, 44, 14, 12]  2 0:00:00.049866\n",
      "[98, 89, 81, 64, 54, 40, 44, 39, 14, 12]  1 0:00:00.049866\n"
     ]
    }
   ],
   "source": [
    "get_best()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
